	LC0: .asciz "teste de for de 1 a 5\n"
	LI0 = .-LC0
	LC1: .asciz "teste de for de 5 a 1\n"
	LI1 = .-LC1
	LC2: .asciz "teste de while de 1 a 5\n"
	LI2 = .-LC2
	LC3: .asciz "teste de repeat de 1 a 5\n"
	LI3 = .-LC3

	.section .bss
	 .comm x_,4,4

	.section .text

	.globl main
	.type main,@function

main: 
	pushl %ebp
	movl (%esp),%ebp
	movl $1,%eax
	movl %eax,x_
.L1:
	movl $5,%eax
	movl %eax,%ecx
	cmpl	%ecx,x_
	jg .L2
	pushl %eax
	movl $4,%eax
	movl $1,%ebx
	movl	$LC0, %ecx
	movl	$LI0, %edx
	int $0x80
	popl %eax
	incl x_
	jmp .L1
.L2:
	movl $5,%eax
	movl %eax,x_
.L3:
	movl $1,%eax
	movl %eax,%ecx
	cmpl	%ecx,x_
	jl .L4
	pushl %eax
	movl $4,%eax
	movl $1,%ebx
	movl	$LC1, %ecx
	movl	$LI1, %edx
	int $0x80
	popl %eax
	decl x_
	jmp .L3
.L4:
	movl $1,%eax
	movl %eax,x_
.L5:
	movl x_,%eax
	pushl %eax
	movl $5,%eax
	cmpl	%eax,(%esp)
	jg .L6
	pushl %eax
	movl $4,%eax
	movl $1,%ebx
	movl	$LC2, %ecx
	movl	$LI2, %edx
	int $0x80
	popl %eax
	movl x_,%eax
	pushl %eax
	movl $1,%eax
	addl	%eax,(%esp)
	popl	%eax
	movl %eax,x_
	jmp .L5
.L6:
	movl $1,%eax
	movl %eax,x_
.L7:
	pushl %eax
	movl $4,%eax
	movl $1,%ebx
	movl	$LC3, %ecx
	movl	$LI3, %edx
	int $0x80
	popl %eax
	movl x_,%eax
	pushl %eax
	movl $1,%eax
	addl	%eax,(%esp)
	popl	%eax
	movl %eax,x_
	movl x_,%eax
	pushl %eax
	movl $5,%eax
	cmpl	%eax,(%esp)
	jle .L7

#end program (exit)
	movl $1,%eax
	movl $0,%ebx
	int $0x80
